// 解题思路：
// 找摆动序列，可以使用贪心的策略，把数组中的极值点找出来，返回极致点的数量和两端的点即可
// 找极值点的方法可以判断这个点左右两遍边的数字，如果乘积为负数，就表示这是一个极值点
// 先让 left = 0, 表示上升或者下降趋势
// 遍历数组，如果 right == 0，说明这个点结合下一个点是平的，因此这个点不需要计数，直接 i++
// 如果 right != 0:
// 如果 left * right <= 0, 就表示找到一个极值点 count++, left = right, i++
// 如果 left * right > 0，就表示下个点是继续上升或者下降的，更新 left = right, i++

class Solution {
    public int wiggleMaxLength(int[] nums) {
        int n = nums.length;
        int left = 0;
        int right = 0;
        int count = 1;
        int i = 0;
        while(i < n - 1){
            right = nums[i + 1] - nums[i];
            if(right == 0) i++;
            else {
                if(left * right <= 0) count++;
                left = right;
                i++;
            }
        }
        return count;
    }
}